// 自定义 404错误类
class NotFoundError extends Error {
    constructor(messsage) {
        super(messsage);
        this.name = 'NotFoundError';
    }
}

// 请求成功
function success(res, message, data = {}, code = 200) {
    res.status(code).json({
        status: true,
        message,
        data
    });
}

// 失败请求
function failure(res, error) {
    if (error.name === 'SequelizeValidationError') {
        const errors = error.errors.map(e => e.message);
        res.status(400).json({
            status: false,
            message: "请求参数错误",
            errors
        })
    }
    if (error.name === 'NotFoundError') {
        res.status(404).json({
            status: false,
            message: '请求资源不存在。',
            errors: [error.message]
        });
    }
    res.status(500).json({
        status: false,
        message: '服务器错误。',
        errors: [error.message]
    });
}

module.exports = {
    NotFoundError, success, failure
};